/**
 * @file poj/3421/main.cpp
 * @author Ruiming Guo (guoruiming@stu.scu.edu.cn)
 * @brief
 * 输入正整数x，求 x
 * 的因子组成的满足任意前一项都能整除后一项的序列的最大长度，
 * 以及所有不同序列的个数
 *
 * @version 0.1
 * @date 2022-04-29
 *
 * @copyright Copyright (c) 2022
 *
 */

#include <iostream>
using namespace std;
const int N = 22;
typedef unsigned long long ull;
ull factorial[N + 1] = {1};

// 阶乘数组 打表
void init(int n) {
  for (int i = 1; i <= n; ++i) factorial[i] = factorial[i - 1] * i;
}

void solve(ull x) {
  ull fcount = 0,       // x 的因子的数量
      denominator = 1;  // 分母
  for (ull i = 2; i <= x / i; ++i) {
    if (x % i == 0) {  // i 是 x 的一个因子
      int ecount = 0;  // 求这个因子的次方数
      while (x % i == 0) {
        ecount++;
        x /= i;
      }
      // i, i^2, i^3, ..., i^ecount 都是 x 的因子
      fcount += ecount;
      denominator *= factorial[ecount];
    }
  }
  // 如果 x 不是 1，需要单独统计一次因子 1
  // 是 1 的话，fcount应该是 0
  if (x != 1) fcount += 1;

  cout << fcount << " "                    // 最大长度
       << factorial[fcount] / denominator  // 组合计数，因子个数
       << endl;
}
int main() {
  init(N);
  ull x;
  while (cin >> x) solve(x);
  return 0;
}
